package com.meiborte.service.impl;

import com.meiborte.entity.Result;
import com.meiborte.entity.User;
import com.meiborte.mapper.UserMapper;
import com.meiborte.service.UserService;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;

import java.util.Objects;

/**
 * 用户业务逻辑实现类
 */
@Service
public class UserServiceImpl implements UserService {

    @Resource
    public UserMapper userMapper;

    /**
     * 登录
     * @param user 用户信息
     * @return Result
     */
    @Override
    public Result login(User user) {
        //1. 判断用户输入的值是否符合要求
        if(user.getAct() == null || user.getAct().isEmpty()) {
            return new Result("用户名不能为空", 201, null);
        }
        if(user.getPwd() == null || user.getPwd().isEmpty()) {
            return new Result("密码不能为空", 201, null);
        }
        //2. 判断用户是否存在
        User storageUser = userMapper.getUser(user.getAct());
        if(storageUser == null){
            return new Result("用户不存在", 201, null);
        }
        //3. 判断密码是否正确
        if(!Objects.equals(storageUser.getPwd(), user.getPwd())){
            return new Result("密码错误", 201, null);
        }
        return new Result("登录成功", 200, null);
    }

    /**
     * 注册
     * @param user 用户信息
     * @return Result
     */
    @Override
    public Result register(User user) {
        // 1. 是不是判断用户输入的值是否符合要求？
        if (user.getAct() == null || user.getAct().isEmpty()) {
            return new Result("账号不能为空", 201, null);
        }
        if (user.getPwd() == null || user.getPwd().isEmpty()) {
            return new Result("密码不能为空", 201, null);
        }
        // 2. 符合要求之后，看一下数据库里面的是否有对应的用户信息
        User storageUser = userMapper.getUser(user.getAct());
        if (storageUser != null) {
            return new Result("用户已存在", 201, null);
        }
        userMapper.save(user);
        return new Result("注册成功", 200, user);
    }
}